package cn.hznc.repository;

import cn.hznc.domain.entity.EntryExitRecordEntity;
import cn.hznc.domain.entity.ICabinetRecordEntity;
import cn.hznc.domain.entity.IcabinetConfigEntity;
import cn.hznc.domain.request.icabinet.RecordGroupCraftIndexReq;
import cn.hznc.domain.request.icabinet.RecordGroupOperatorIndexReq;
import cn.hznc.domain.request.icabinet.RecordMachineToolIndexReq;
import cn.hznc.domain.request.icabinet.SearchRecordReq;
import cn.hznc.vo.RecordGroupCraftToolIndexVo;
import cn.hznc.vo.RecordGroupMachineToolIndexVo;
import cn.hznc.vo.RecordGroupMachineToolVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @Author：Administrator
 * @Date：2023/11/6 15:26
 */
public interface IcabinetRepository{

    List<RecordGroupMachineToolIndexVo> recordGroupMachineToolIndex(RecordMachineToolIndexReq recordMachineToolIndexReq);

    List<RecordGroupMachineToolIndexVo> recordGroupMachineTool(RecordMachineToolIndexReq recordMachineToolIndexReq);

    List<ICabinetRecordEntity> searchRecord(SearchRecordReq searchRecordReq);

    List<String> qryMachineToolNameGroup();

    Integer getNumber(@Param("machineTool") String machineTool,@Param("startTime") String startTime,@Param("endTime") String endTime);

    Double getPrice(@Param("machineTool") String machineTool,@Param("startTime") String startTime,@Param("endTime") String endTime);

    List<RecordGroupMachineToolIndexVo> recordGroupOperatorIndex(RecordGroupOperatorIndexReq recordGroupOperatorIndexReq);

    List<RecordGroupMachineToolIndexVo> recordGroupOperator(RecordGroupOperatorIndexReq recordGroupOperatorIndexReq);

    Integer getNumberReload(@Param("partnos") List<String> partnos,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("type") String type);
    Integer countNumberReload(@Param("partnos") List<String> partnos,@Param("startTime") String startTime,@Param("endTime") String endTime);

    Double getPriceReload(@Param("partnos") List<String> partnos,@Param("startTime") String startTime,@Param("endTime") String endTime,@Param("type") String type);

    List<RecordGroupCraftToolIndexVo> recordGroupCraftIndex(RecordGroupCraftIndexReq recordGroupCraftIndexReq);

    List<RecordGroupCraftToolIndexVo> recordGroupCraft(RecordGroupCraftIndexReq recordGroupCraftIndexReq);

    Integer countNumber(@Param("toolId") Integer toolId);

    Integer getInboundPrice(@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("partno") String partno);
    Integer getOutboundPrice(@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("partno") String partno);

    Double getPriceByPartno(@Param("partno") String partno);

    List<EntryExitRecordEntity> selectByCondition(@Param("startTime") String startTime,@Param("endTime") String endTime);
}
